Today's vehicle final assembly process' uses, for example, a portable programming and testing tool 10 mounted on the vehicle steering wheel 12 as shown in FIG. 1 to flash program vehicle calibration tables for vehicle electrical control units (ECUs). For example, the power train control module (PCM) is one of the ECU's flash-programmed at the assembly plant. Flash programming at assembly plants provides a flexible mechanism for incorporating changes in calibration tables. However, this programming process consumes limited and valuable production job space on the final assembly line. In the past few years, the software content of vehicle ECUs has increased, requiring more time (thus more workstation space on the assembly line) for flash programming.
An improved controller area network (CAN) bus is being introduced in various vehicle platforms. As a CAN-based (ISO 11898 and ISO 15765) serial protocol, the improved CAN bus divides one message into 8 byte frames and transmits one 8-byte frame at a time. Between subsequent frames designated to the same ECU, there has to be a wait time (called the inter-frame wait time). The inter-frame wait time is wasted time on the CAN bus. Parallel flash programming is a technique to utilize the inter-frame wait time on the CAN bus for flashing another ECU at the same time to achieve near 100% CAN bus utilization. Parallel flash programming is also termed the frame interleaving technique. Accordingly, given N ECUs, if the inter-frame wait time 16 is set to a multiple M (<N) of the single frame transfer time, a total of M+1 ECUs can theoretically be parallel flash programmed. As shown in FIG. 2, when the inter-frame wait time 16 is set to twice the single frame transfer time 14, the interleaving of three frames are achieved, thus three ECUs (A, B, and C) may be parallel flash programmed at the same time.
As a vehicle manufacturer moves to a common electrical architecture for vehicle control systems, more and more ECUs are shared across vehicle platforms and more and more software-enabled features are delivered via the assembly plant process. Thus, when multiple ECUs are connected to the same CAN bus, each ECU has different sets of calibration tables to be flash programmed at the assembly plant. As a result, many strategies exist to flash program multiple ECUs, and the number of possible strategies rises with the number of ECUs connected to the bus. As an example shown in FIG. 3, seven ECUs 18A-18G are connected to the same CAN bus 20 in a vehicle. Thus, one strategy is, for example, to parallel flash program all seven ECUs at the same time. In contrast, another strategy is to parallel flash program three ECUs and then four ECUs. Many more strategies also exist. However, selecting the right strategy to reduce programming time and increase use of the bus 20 is a difficult problem. The present invention provides a solution to this problem.